﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;
using Loja_Virtual_Livraria.App_Code.Model;
using Loja_Virtual_Livraria.App_Code.BLL;

namespace Loja_Virtual_Livraria.App_Code.SQLServerDAL
{
    public class FisicaDAL
    {
        public static void insertFisica(Fisica myFisica)
        {
            SqlConnection myConnection = null;
            try
            {
                myConnection = SQLServerConnection.getConnection();
                SqlCommand myCommand = new SqlCommand("INSERT INTO Fisica (pessoaID, nome, cpf, rg, dataNascimento) " +
                "VALUES (@pessoaID, @nome, @cpf, @rg, @dataNascimento)", myConnection);

                SqlParameter paramCpf = new SqlParameter("cpf", SqlDbType.VarChar);
                paramCpf.Direction = ParameterDirection.Input;
                paramCpf.Value = myFisica.getCpf();

                SqlParameter paramRg = new SqlParameter("rg", SqlDbType.VarChar);
                paramRg.Direction = ParameterDirection.Input;
                paramRg.Value = myFisica.getRg();

                SqlParameter paramNome = new SqlParameter("nome", SqlDbType.VarChar);
                paramNome.Direction = ParameterDirection.Input;
                paramNome.Value = myFisica.getCpf();

                SqlParameter paramPessoaId = new SqlParameter("pessoaID", SqlDbType.Int);
                paramPessoaId.Direction = ParameterDirection.Input;
                paramPessoaId.Value = myFisica.getPessoaID();

                SqlParameter paramDataNascimento = new SqlParameter("dataNascimento", SqlDbType.DateTime);
                paramDataNascimento.Direction = ParameterDirection.Input;
                paramDataNascimento.Value = myFisica.getDataNascimento();

                myCommand.Parameters.Add(paramCpf);
                myCommand.Parameters.Add(paramRg);
                myCommand.Parameters.Add(paramNome);
                myCommand.Parameters.Add(paramPessoaId);
                myCommand.Parameters.Add(paramDataNascimento);

                myConnection.Open();
                myCommand.ExecuteNonQuery();
            }
            finally
            {
                if (myConnection != null)
                    myConnection.Close();
            }
        }

        public static void updateFisica(Fisica myFisica)
        {
            SqlConnection myConnection = null;
            try
            {
                myConnection = SQLServerConnection.getConnection();
                SqlCommand myCommand = new SqlCommand("UPDATE Fisica SET nome = @nome,cpf =  @cpf, "
                + "rg = @rg, dataNascimento = @dataNascimento WHERE pessoaID = @pessoaID", myConnection);

                SqlParameter paramCpf = new SqlParameter("cpf", SqlDbType.VarChar);
                paramCpf.Direction = ParameterDirection.Input;
                paramCpf.Value = myFisica.getCpf();

                SqlParameter paramRg = new SqlParameter("rg", SqlDbType.VarChar);
                paramRg.Direction = ParameterDirection.Input;
                paramRg.Value = myFisica.getRg();

                SqlParameter paramNome = new SqlParameter("nome", SqlDbType.VarChar);
                paramNome.Direction = ParameterDirection.Input;
                paramNome.Value = myFisica.getCpf();

                SqlParameter paramPessoaId = new SqlParameter("pessoaID", SqlDbType.Int);
                paramPessoaId.Direction = ParameterDirection.Input;
                paramPessoaId.Value = myFisica.getPessoaID();

                SqlParameter paramDataNascimento = new SqlParameter("dataNascimento", SqlDbType.DateTime);
                paramDataNascimento.Direction = ParameterDirection.Input;
                paramDataNascimento.Value = myFisica.getDataNascimento();

                myCommand.Parameters.Add(paramCpf);
                myCommand.Parameters.Add(paramRg);
                myCommand.Parameters.Add(paramNome);
                myCommand.Parameters.Add(paramPessoaId);
                myCommand.Parameters.Add(paramDataNascimento);

                myConnection.Open();
                myCommand.ExecuteNonQuery();
            }
            finally
            {
                if (myConnection != null)
                    myConnection.Close();
            }
        }
    }
}